package com.linkstec.musiccloud.service;

import com.linkstec.musiccloud.pojo.User;

import java.util.List;

import com.linkstec.musiccloud.pojo.User;

/**
 * @ClassName:UserService用户
 * @Description:TODO用户的service接口
 * @author liujinhui
 * @date:2018年11月23日上午10:08:17
 */
public interface UserService {

	/**     
	 * @Description:TODO 注册
	 * @author: shuaibizhe
	 * @date:   2018年11月22日 下午8:38:11    
	 * @param user      
	 */  
	void register(User user);

	/**     
	 * @Description:TODO 登陆
	 * @author: shuaibizhe
	 * @date:   2018年11月23日 上午9:41:37    
	 * @param user
	 * @return      
	 */  
	User login(User user);
	/**
	 * @Description:TODO查询所有用户
	 * @author liujinhui
	 * @date:2018年11月23日上午10:08:04
	 * @return
	 * @throws RuntimeException
	 */
	public List<User> selectAllUser() throws RuntimeException;

	/**
	 * @Description:TODO添加用户
	 * @author liujinhui
	 * @date:2018年11月23日上午11:07:54
	 * @param user
	 * @throws RuntimeException
	 */
	public void mUserAdd(User user) throws RuntimeException;


	/**
	 * @Description:TODO根据用户ID查询用户
	 * @author liujinhui
	 * @date:2018年11月23日下午3:22:21
	 * @param user
	 * @return
	 * @throws RuntimeException
	 */
	User selectUserById(User user) throws RuntimeException;

	/**
	 * @Description:TODO修改用户信息
	 * @author liujinhui
	 * @date:2018年11月23日下午3:49:56
	 * @param user
	 * @throws RuntimeException
	 */
	void mUserUpdate(User user) throws RuntimeException;

	/**
	 * @Description:TODO根据用户名模糊查询用户
	 * @author liujinhui
	 * @date:2018年11月23日下午4:11:29
	 * @param user
	 * @return
	 * @throws RuntimeException
	 */
	List<User> selectUsers(User user) throws RuntimeException;

	/**
	 * @Description:TODO逻辑删除用户
	 * @author liujinhui
	 * @date:2018年11月23日下午5:02:49
	 * @param userId
	 * @throws RuntimeException
	 */
	void deleteUsers(User user) throws RuntimeException;

	
	/**
	 * @Description:TODO查询要成为歌手的用户
	 * @author liujinhui
	 * @date:2018年11月25日下午5:26:45
	 * @return
	 * @throws RuntimeException
	 */
	List<User> selectSingers() throws RuntimeException;

	/**
	 * @Description:TODO成为歌手
	 * @author liujinhui
	 * @date:2018年11月26日上午9:39:50
	 * @param user
	 * @throws RuntimeException
	 */
	void becomeSinger(User user) throws RuntimeException;

	/**     
	 * @Description:TODO 查找歌手
	 * @author: shuaibizhe
	 * @param realName 
	 * @date:   2018年11月26日 下午2:33:16    
	 * @return      
	 */  
	List<User> selectSinger(String realName);

	/**     
	 * @Description:TODO 修改艺名
	 * @author: shuaibizhe
	 * @date:   2018年11月27日 上午9:18:16    
	 * @param user      
	 */  
	void updateRealName(User user);
	
	/**
	 * @Description:TODO 修改资料
	 * @author: xulisa
	 * @date:   2018年11月26日 下午4:47:41    
	 * @param user
	 */
	void update(User user);

	/**     
	 * @Description:TODO 
	 * @author: shuaibizhe
	 * @date:   2018年11月27日 下午2:32:49    
	 * @param userId
	 * @return      
	 */  
	User selectPath(int userId);

}
